﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SAAC.DTO;
using SAAC.BLL;

namespace SAAC
{
	public partial class Login01 : System.Web.UI.Page
	{
		const string MATRICULA_SESSION = "MATRICULA_SESSION";

		protected void Page_Load(object sender, EventArgs e)
		{
			Menu menuAluno = (Menu)Master.FindControl("MenuAluno");
			menuAluno.Visible = false;
			Menu menuFuncionario = (Menu)Master.FindControl("MenuFuncionario");
			menuFuncionario.Visible = false;
			Menu menuProfessor = (Menu)Master.FindControl("MenuProfessor");
			menuProfessor.Visible = false;
			Menu menuColegiado = (Menu)Master.FindControl("MenuColegiado");
			menuColegiado.Visible = false;

			LinkButton lkbSair = (LinkButton)Master.FindControl("lkbSair");
			lkbSair.Visible = false;

		}

		protected void btnEntrar_Click(object sender, EventArgs e)
		{
			var bllUsuario = new UsuarioBLL();
			var dtoUsuario = new UsuarioDTO();

			dtoUsuario.Login = txtLogin.Text;
			dtoUsuario.Senha = txtSenha.Text;

			if (txtLogin.Text.Equals(string.Empty) || txtSenha.Text.Equals(string.Empty))
			{
				lblMensagem.Text = "Usuário ou senha devem ser preenchidos";
				return;
			}

			dtoUsuario = bllUsuario.Select(dtoUsuario);

			if (dtoUsuario == null)
				lblMensagem.Text = "Usuário Inválido";

			else
			{
				//Se Usuário for do tipo 1 é Aluno
				if (dtoUsuario.TipoUsuario.Id == (int)ETipoUsuario.Aluno)
				{
					var dtoAluno = new AlunoDTO();
					var bllAluno = new AlunoBLL();

					dtoAluno.Usuario = new UsuarioDTO();
					dtoAluno.Usuario.Id = dtoUsuario.Id;
					dtoAluno = bllAluno.Select(dtoAluno);

					Session[MATRICULA_SESSION] = dtoAluno.Matricula;

					Response.Redirect("Aluno/HomeAluno.aspx");
				}
				//Se Usuário for do tipo 2 é Funcionário
				else if (dtoUsuario.TipoUsuario.Id == (int)ETipoUsuario.Funcionario)
				{
					var dtoFuncionario = new FuncionarioDTO();
					var bllFuncionario = new FuncionarioBLL();

					dtoFuncionario.Usuario = new UsuarioDTO();
					dtoFuncionario.Usuario.Id = dtoUsuario.Id;
					dtoFuncionario = bllFuncionario.Select(dtoFuncionario);

					Session[MATRICULA_SESSION] = dtoFuncionario.Matricula;

					Response.Redirect("Funcionario/HomeFuncionario.aspx");
				}
				//Se Usuário for do tipo 3 é Professor
				else if (dtoUsuario.TipoUsuario.Id == (int)ETipoUsuario.Professor)
				{
					var dtoProfessor = new ProfessorDTO();
					var bllProfessor = new ProfessorBLL();

					dtoProfessor.Usuario = new UsuarioDTO();
					dtoProfessor.Usuario.Id = dtoUsuario.Id;
					dtoProfessor = bllProfessor.Select(dtoProfessor);
					Session[MATRICULA_SESSION] = dtoProfessor.Matricula;
					
					if (bllProfessor.IsCoordenadorOuVice(dtoProfessor))
						Response.Redirect("Colegiado/HomeColegiado.aspx");
					Response.Redirect("Professor/HomeProfessor.aspx");
				}
				else
				{
					lblMensagem.Text = "Usuário Inválido";
				}
			}
		}



	}
}